package com.ruoyi.system.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;
import java.util.List;

/**
 * 订单信息对象 order_initiate
 * 
 * @author ruoyi
 * @date 2025-06-09
 */
public class OrderInitiate extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键id */
    private Long id;

    /** 订单ID */
    @Excel(name = "订单ID")
    private Long orderId;

    /** 订单名称 */
    @Excel(name = "订单名称")
    private String orderName;

    /** 订单类型（0打样 1大货） */
    @Excel(name = "订单类型", readConverterExp = "0=打样,1=大货")
    private String orderType;

    /** 订单价格 */
    @Excel(name = "订单价格")
    private String orderPrice;

    /** 数量 */
    @Excel(name = "数量")
    private Integer number;

    /** 计划完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "计划完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date planFinishTime;

    /** 实际完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "实际完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date actualFinishTime;

    /** 收货地址 */
    private String orderAddress;

    /** 状态（0草稿 1未完成 2已完成） */
    @Excel(name = "状态", readConverterExp = "0=草稿,1=未开始,2=已下发,3=已完成")
    private String orderStatus;

    /** 附件 */
    private String accessory;

    /**
     * 订单绑定环节信息
     */
    private List<OrderLinkRealize> orderLinkRealizeList;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setOrderId(Long orderId) 
    {
        this.orderId = orderId;
    }

    public Long getOrderId() 
    {
        return orderId;
    }

    public void setOrderName(String orderName) 
    {
        this.orderName = orderName;
    }

    public String getOrderName() 
    {
        return orderName;
    }

    public void setOrderType(String orderType) 
    {
        this.orderType = orderType;
    }

    public String getOrderType() 
    {
        return orderType;
    }

    public void setOrderPrice(String orderPrice) 
    {
        this.orderPrice = orderPrice;
    }

    public String getOrderPrice() 
    {
        return orderPrice;
    }

    public void setNumber(Integer number)
    {
        this.number = number;
    }

    public Integer getNumber()
    {
        return number;
    }

    public void setPlanFinishTime(Date planFinishTime) 
    {
        this.planFinishTime = planFinishTime;
    }

    public Date getPlanFinishTime() 
    {
        return planFinishTime;
    }

    public void setActualFinishTime(Date actualFinishTime) 
    {
        this.actualFinishTime = actualFinishTime;
    }

    public Date getActualFinishTime() 
    {
        return actualFinishTime;
    }

    public void setOrderAddress(String orderAddress) 
    {
        this.orderAddress = orderAddress;
    }

    public String getOrderAddress() 
    {
        return orderAddress;
    }

    public void setOrderStatus(String orderStatus) 
    {
        this.orderStatus = orderStatus;
    }

    public String getOrderStatus() 
    {
        return orderStatus;
    }

    public void setAccessory(String accessory) 
    {
        this.accessory = accessory;
    }

    public String getAccessory() 
    {
        return accessory;
    }

    public List<OrderLinkRealize> getOrderLinkRealizeList() {
        return orderLinkRealizeList;
    }

    public void setOrderLinkRealizeList(List<OrderLinkRealize> orderLinkRealizeList) {
        this.orderLinkRealizeList = orderLinkRealizeList;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("orderId", getOrderId())
            .append("orderName", getOrderName())
            .append("orderType", getOrderType())
            .append("orderPrice", getOrderPrice())
            .append("number", getNumber())
            .append("planFinishTime", getPlanFinishTime())
            .append("actualFinishTime", getActualFinishTime())
            .append("orderAddress", getOrderAddress())
            .append("orderStatus", getOrderStatus())
            .append("accessory", getAccessory())
            .append("remark", getRemark())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
